package com.jacky.二叉树;


import java.util.ArrayList;
import java.util.List;

public class 二叉树前序遍历_144 {
    /**
     * 输入：root = [1,null,2,3]
     * 输出：[1,2,3]
     * 前序遍历-根左右，递归版本
     * @param root
     * @return
     */
    public List<Integer> preorderTraversal(TreeNode root) {
        //定义一个list数组，用于存放遍历到节点
        List<Integer> list = new ArrayList<>();
        preorder(root,list);
        return list;
    }

    /**
     * 前序遍历，递归方式
     * @param root
     * @param list
     */
    public void preorder(TreeNode root,List<Integer> list){
        //推出递归方法的条件
        if (root ==null){
            return;
        }
        //先把跟节点放到list集合里面去
        list.add(root.val);
        //左节点
        preorder(root.left,list);
        //右节点
        preorder(root.right,list);
    }

}



